package com.example.administrator.newjiajiesong.main.my;


import com.example.administrator.newjiajiesong.base.BaseTreeView;
import com.example.administrator.newjiajiesong.network.ApiCallBack;

/**
 * EditPhoneNumberContract
 * (๑• . •๑)
 * 类描述: 修改手机号Activity的MVP契约类
 * Created by LeiXiaoXing on 2017/5/15 10:59
 */

public class EditPhoneNumberContract {

    public interface View extends BaseTreeView {
        /**
         * 获取用户输入新手机号
         *
         * @return 新手机号
         */
        String getNewPhoneNumber();

        /**
         * 获取用户输入验证码
         *
         * @return 验证码
         */
        String getCode();

        /**
         * 设置发送验证码按钮文本
         *
         * @param msg 按钮文本
         */
        void setCodeBtnText(String msg);

        /**
         * 设置发送验证码按钮是否可用
         *
         * @param enable 是否可用
         */
        void setCodeBtnEnable(boolean enable);

        /**
         * 修改完成
         */
        void editComplete();
    }

    public interface Presenter {
        /**
         * 发送验证码
         */
        void sendCode();

        /**
         * 修改手机号
         */
        void sureEdit();

        /**
         * 微信绑定手机号
         * @param token
         */
        void wxBindPhone(String token);
    }

    public interface Model {
        /**
         * 发送验证码
         *
         * @param type     验证码类型
         * @param mobile   手机号
         * @param callBack 结果回调
         */
        void sendCode(int type, String mobile, ApiCallBack callBack);

        /**
         * 确认修改手机号
         *
         * @param phone    手机号
         * @param code     验证码
         * @param callBack 结果回调
         */
        void sureEdit(String phone, String code, ApiCallBack callBack);

        /**
         * 微信绑定手机号
         * @param token
         * @param phone
         * @param code
         * @param callBack
         */
        void wxBindPhone(String token, String phone, String code, ApiCallBack callBack);

        /**
         * 修改本地保存的手机号
         *
         * @param newPhoneNumber 本地保存的手机号
         */
        void editPhone(String newPhoneNumber);
    }


}